package controllers

import (
	beego "github.com/beego/beego/v2/server/web"
	"store-management/models/mysql"
)

type StoreController struct {
	beego.Controller
}

func (c *StoreController) Add() {
	name := c.GetString("name")
	engaged := c.GetString("engaged")
	status := c.GetString("status")
	userId, _ := c.GetInt64("userId")

	var stores mysql.Store

	stores.Name = name
	stores.Engaged = engaged
	stores.Status = status
	stores.UserId = userId

	err := stores.AddStore(stores)
	if err != nil {
		c.Data["json"] = map[string]interface{}{
			"Msg":  "门店添加失败",
			"Code": 500,
		}
		c.ServeJSON()
		return
	}

	c.Data["json"] = map[string]interface{}{
		"Msg":  "门店添加成功",
		"Code": 200,
		"Data": stores,
	}
	c.ServeJSON()

}

func (c *StoreController) List() {
	c.Ctx.Output.Header("Access-Control-Allow-Origin", "*")
	var err error
	var stores []mysql.Store
	var store mysql.Store

	stores, err = store.GetStoreList()
	if err != nil {
		c.Data["json"] = map[string]interface{}{
			"Msg":  "门店展示失败",
			"Code": 500,
		}
		c.ServeJSON()
		return
	}

	c.Data["json"] = map[string]interface{}{
		"Msg":  "门店展示成功",
		"Code": 200,
		"Data": stores,
	}
	c.ServeJSON()
}

func (c *StoreController) Update() {
	id, _ := c.GetInt64("id")
	name := c.GetString("name")
	engaged := c.GetString("engaged")
	status := c.GetString("status")
	userId, _ := c.GetInt64("userId")

	var stores mysql.Store
	stores.ID = uint(id)
	stores.Name = name
	stores.Engaged = engaged
	stores.Status = status
	stores.UserId = userId

	err := stores.UpdatesStore(stores)
	if err != nil {
		c.Data["json"] = map[string]interface{}{
			"Msg":  "门店修改失败",
			"Code": 500,
		}
		c.ServeJSON()
		return
	}

	c.Data["json"] = map[string]interface{}{
		"Msg":  "门店修改成功",
		"Code": 200,
	}
	c.ServeJSON()

}
